home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-04 / netprog.zip / NETPROG.TAR / ipc / time_sem2.c < prev    next >
C/C++ Source or Header  |  1989-12-17  |  606b  |  31 lines

  1. #include    <sys/types.h>
  2. #include    <sys/ipc.h>
  3. #include    <sys/sem.h>
  4.  
  5. #define    KEY    ((key_t) 54321)
  6. #define    COUNT    20000
  7.  
  8. struct sembuf    op_up[1]   = { 0,  1, SEM_UNDO };
  9. struct sembuf    op_down[1] = { 0, -1, SEM_UNDO };
  10.  
  11. main()
  12. {
  13.     register int    i, semid;
  14.  
  15.     if ( (semid = semget(KEY, 1, 0666 | IPC_CREAT)) < 0)
  16.         err_sys("semget error");
  17.  
  18.     for (i = 0; i < COUNT; i++) {
  19.         if (semop(semid, &op_up[0], 1) < 0)
  20.             err_sys("semop up error");
  21.  
  22.         if (semop(semid, &op_down[0], 1) < 0)
  23.             err_sys("semop down error");
  24.     }
  25.  
  26.     if (semctl(semid, 0, IPC_RMID, (struct semid_ds *) 0) < 0)
  27.         err_sys("IPC_RMID error");
  28.  
  29.     exit(0);
  30. }
  31.